
#include "font_display.h"




static LcdDevice *lcd = NULL;
static font *f = NULL;

void font_display_init(void)
{
    lcd = init_lcd("/dev/fb0");
    f = fontLoad("ht.ttf");
    fontSetSize(f, 32);
}

void font_display_text(int x, int y, const char *text, int fontsize, color fontcolor)
{
    if (!lcd || !f) return;

    fontSetSize(f, fontsize);  // 设置字体大小

    // 估算画板宽度（假设一个字符宽度 ≈ fontsize）
    int w = strlen(text) * fontsize *0.37;
    int h = fontsize;  // 留点上下空间

    bitmap *bm = createBitmapWithInit(w, h, 4, getColor(0, 255, 255, 255)); // 背景颜色青色
    fontPrint(f, bm, 0, 0, (char *)text, fontcolor, 0); // 使用传入颜色
    show_font_to_lcd(lcd->mp, x, y, bm);
    destroyBitmap(bm);
}


void font_display_close(void)
{
    if (f) fontUnload(f);
}
